/*
 * Filename:    IntegrityMedicalDAO.java
 * Copyright:   2014 中国平安保险（集团）股份有限公司 版权所有
 * Company:     平安科技养老险及健康险系统开发部
 * Create at:   2014年10月30日
 */
package com.paic.mhis.hcpms.trust.intergration.dao;

import java.util.List;
import java.util.Map;

import com.paic.mhis.hcpms.trust.dto.IntegrityMedicalDTO;
import com.paic.mhis.hcpms.trust.dto.IntegrityMedicalDoctorDTO;
import com.paic.mhis.hcpms.trust.dto.IntegrityMedicalOrgDTO;
import com.paic.mhis.hcpms.trust.dto.PointCutDTO;
import com.paic.mhis.hcpms.warning.dto.WarningDeductionDTO;
import com.paic.pafa.exceptions.BusinessException;

public interface IntegrityMedicalDAO {
	/**
	 * 医务人员诚信查询
	 * 
	 * @param paramMap
	 * @return
	 */
	public List<IntegrityMedicalDTO> findIntegrityMedical(Map<String, Object> paramMap) throws BusinessException;

	/**
	 * 医务人员诚信查询-明细
	 * 
	 * @return
	 */
	public List<IntegrityMedicalDTO> findIntegrityMedicalDesc(Map<String, Object> paramMap) throws BusinessException;

	/**
	 * 医务人员诚信查询-明细
	 * 
	 * @return
	 */
	public List<IntegrityMedicalDTO> findIntegrityAuditAndApproveMedicalDesc(Map<String, Object> paramMap)
			throws BusinessException;

	/**
	 * 医务人员诚信查询-扣分明细
	 * 
	 * @param paramMap
	 * @return
	 */
	public List<IntegrityMedicalDTO> findIntegrityMedicalMark(Map<String, Object> paramMap) throws BusinessException;

	/**
	 * 医务人员列表
	 * 
	 * @param paramMap
	 * @return
	 */
	public List<IntegrityMedicalDoctorDTO> findIntegrityDoctor(Map<String, Object> paramMap) throws BusinessException;

	/**
	 * 机构列表
	 * 
	 * @return
	 */
	public List<IntegrityMedicalOrgDTO> findIntegrityOrg(Map<String, Object> paramMap) throws BusinessException;

	/**
	 * 医务人员诚信查询 - 条数
	 * 
	 * @param paramMap
	 * @return
	 */
	public int countIntegrityMedical(Map<String, Object> paramMap) throws BusinessException;

	/**
	 * 单条扣分接口
	 * 
	 * @param pointCut
	 */
	public void addIntegrityPoint(PointCutDTO pointCut) throws BusinessException;

	/**
	 * 多条扣分接口
	 * 
	 * @param pointCuts
	 */
	public void addIntegrityPoints(List<PointCutDTO> pointCuts) throws BusinessException;

	/**
	 * 医务人员诚信查询 - 合计明细
	 * 
	 * @param paramMap
	 * @return
	 */
	public List<IntegrityMedicalDTO> findIntegrityMedicalTotal(Map<String, Object> paramMap) throws BusinessException;

	/**
	 * 医务人员诚信查询 - 合计条数
	 * 
	 * @param paramMap
	 * @return
	 */
	public int countIntegrityMedicalTotal(Map<String, Object> paramMap) throws BusinessException;

	/**
	 * 医务人员诚信查询导出
	 * 
	 * @param paramMap
	 * @return
	 */
	public List<IntegrityMedicalDTO> findIntegrityMedicalReport(Map<String, Object> paramMap) throws BusinessException;

	/**
	 * 医务人员诚信查询导出 - 条数
	 * 
	 * @param paramMap
	 * @return
	 */
	public int countIntegrityMedicalReport(Map<String, Object> paramMap) throws BusinessException;

	/**
	 * 多条临时扣分接口
	 * 
	 * @param pointCuts
	 */
	public void addIntegrityPointTemps(List<PointCutDTO> pointCuts) throws BusinessException;

	/**
	 * 扣分明细信息
	 * 
	 * @param paramMap
	 * @return
	 */
	public List<PointCutDTO> findPointCuts(Map<String, Object> paramMap) throws BusinessException;

	/**
	 * 扣分明细临时信息
	 * 
	 * @param paramMap
	 * @return
	 */
	public List<PointCutDTO> findPointCutTemps(Map<String, Object> paramMap) throws BusinessException;

	/**
	 * 临时扣分数据转移
	 * 
	 * @param paramMap
	 */
	public void addPointCut(Map<String, Object> paramMap) throws BusinessException;

	/**
	 * 删除扣分信息
	 * 
	 * @param ids
	 */
	public void deletePointCut(List<PointCutDTO> ids) throws BusinessException;

	/**
	 * 医生年度周期内已记分值
	 * 
	 * @param paramMap
	 */
	public String mediCalContentPoint(Map<String, Object> paramMap) throws BusinessException;

	/**
	 * 机构对象当前细则对应的考核内容项下所有细则信息
	 * 
	 * @param paramMap
	 */
	public List<WarningDeductionDTO> findIdStandardScores(Map<String, Object> paramMap) throws BusinessException;

	/**
	 * 医务人员诚信违规记分情况-明细（待修改）
	 * 
	 * @param paramMap
	 * @return
	 */
	public List<IntegrityMedicalDTO> findIntegrityInsuranceUpdateDesc(Map<String, Object> paramMap)
			throws BusinessException;

	/**
	 * 医务人员诚信违规记分情况-明细（待审核、待审批）
	 * 
	 * @param paramMap
	 * @return
	 */
	public List<IntegrityMedicalDTO> findIntegrityInsuranceAuditApproveDesc(Map<String, Object> paramMap)
			throws BusinessException;

	/**
	 * 医务人员诚信违规记分情况-明细（已结案）
	 * 
	 * @param paramMap
	 * @return
	 */
	public List<IntegrityMedicalDTO> findIntegrityInsuranceClosedDesc(Map<String, Object> paramMap)
			throws BusinessException;

	/**
	 * 医务人员录入记分同步临时记分值
	 * 
	 * @param paramMap
	 * @return
	 */
	public boolean updateStorageSaveDatePoint(Map<String, Object> paramMap) throws BusinessException;

	/**
	 * 医务人员录入记分临时记分值 是否存在
	 * 
	 * @param paramMap
	 * @return
	 */
	public int countStorageSaveDatePoint(Map<String, Object> paramMap) throws BusinessException;

	/**
	 * 保存审核人员意见
	 * 
	 * @param paramMap
	 * @return
	 */
	public void saveAuditOpinion(Map param);

	/**
	 * 批量保存审核人员意见
	 * 
	 * @param paramMap
	 * @return
	 */
	public void saveAuditBatchOpinion(List paramList);

	/**
	 * 删除暂存扣分信息
	 * 
	 * @param paramMap
	 */
	public void deleteIntegrityStorageSaveData(Map<String, Object> paramMap) throws BusinessException;
}
